import group from './group';
import language from './language';
import LICENSE from './LICENSE'

class project {
  //项目名字
  private projectName!: string;
  //项目描述
  private projectDescription!: string;
  //项目路径
  private rootPath!: string;
  //项目文件组
  private fileGroup!: group;
  //项目创建时间
  private createDate!: string;
  //项目最后修改时间
  private lastEditDate!: string;
  //项目最后访问时间
  private lastVisitDate!: string;
  //项目作者列表
  private author!: string[];
  //项目语言
  private language!: language;
  //项目LICENSE
  private LICENSE!: LICENSE;
  //项目插件
  // private plugin
  public openProject(): project {
    return this;
  }
  /**
   * setProjectName
   */
  public setProjectName(name: string) {
    this.projectName = name;
  }
  /**
   * getProjectName
   */
  public getProjectName(): string {
    return this.projectName;
  }
  /**
   * setProjectDescription
   */
  public setProjectDescription(description: string) {
    this.projectDescription = description;
  }
  /**
   * getProjectDescription
   */
  public getProjectDescription() {
    return this.projectDescription;
  }
  /**
   * setRootPath
   */
  public setRootPath(path: string) {
    this.rootPath = path;
  }
  /**
   * getRootPath
   */
  public getRootPath(): string {
    return this.rootPath;
  }
  /**
   * setAuthor
   */
  public setAuthor(author: string[]) {
    this.author = author;
  }
  /**
   * addAuthor
   */
  public addAuthor(author: string) {
    this.author.push(author);
  }
  /**
   * getAuthor
   */
  public getAuthor(): string[] {
    return this.author;
  }
  /**
   * setCreateDate
   */
  public setCreateDate(date: string) {
    this.createDate = date;
  }
  /**
   * getCreateDate
   */
  public getCreateDate(): string {
    return this.createDate;
  }
  /**
   * setLastEditDate
   */
  public setLastEditDate(date: string) {
    this.lastEditDate = date;
  }
  /**
   * getLastEditDate
   */
  public getLastEditDate(): string {
    return this.lastEditDate;
  }
  /**
   * setVisitDate
   */
  public setLastVisitDate(date: string) {
    this.lastVisitDate = date;
  }
  /**
   * getVisitDate
   */
  public getLastVisitDate(): string {
    return this.lastVisitDate;
  }
  /**
   * setFileGroup
   */
  public setFileGroup(fileGroup: group) {
    this.fileGroup = fileGroup;
  }
  /**
   * getFileGroup
   */
  public getFileGroup(): group {
    return this.fileGroup;
  }
  /**
   * setLanguage
   */
  public setLanguage(value: language) {
    this.language = value;
  }
  /**
   * getLanguage
   */
  public getLanguage(): language {
    return this.language;
  }
  /**
   * setLICENSE
   */
  public setLICENSE(value: LICENSE) {
    this.LICENSE = value;
  }
  /**
   * getLICENSE
   */
  public getLICENSE(): LICENSE {
    return this.LICENSE;
  }
}

export default project;